#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue May  3 15:53:31 2022

@author: cythnia
"""

#————————————————————————————————————————————————#
#解析pdf文件
#————————————————————————————————————————————————#
#导入工具包
import pdfplumber
import os
file_yuan='/Users/cythnia/Desktop/lunwen'
file_list=[]
 #遍历一整个文件夹
for files in os.walk(file_yuan): 
    for file in files[2]:
        if os.path.splitext(file)[1]=='.pdf' or os.path.splitext(file)[1]=='.PDF':
            file_list.append(file_yuan+'/'+file)
print(file_list)
text_all=[]
#导入pdf解析工具包,解析文件夹中每个文件的内容
for i in range(len(file_list)):
    pdf=pdfplumber.open(file_list[i]) #打开pdf文件
    pages=pdf.pages
    for page in pages:
        text=page.extract_text()
        text_all.append(text)  
# text_all=''.join(text_all)
##保存已经解析的pdf文件夹中所有文件内容（新建txt）
path='/Users/cythnia/Desktop/lunwen/'
file=open(path+'金域医学年报.txt',mode='a',encoding='utf-8')
file.write(text)
##————————————————————————————————————————————————————————————#
#删除换行符、拆分txt及自定义词语频数统计
#—————————————————————————————————————————————————————————————#
#导入工具包
import jieba
os.chdir('/Users/cythnia/Desktop/lunwen/')
#读取文件行数
textl=open('金域医学年报.txt','r').readlines()
zzb=''
#删除换行符（防止词语因换行被拆分）
for i in range(len(textl)):
    if textl[i].endswith('\n'):
        textl[i]=textl[i][:-1]
    for j in range(len(textl)):
        zzb+=textl[j]
with open(path+'金域医学.txt',mode='a',encoding='utf-8') as zz:
    zz.write(zzb)
# #读取txt文件（去除换行符后）
text=open('金域医学.txt','r').read()  

#删除标点和换行符
# for ch in '，。？！“” ：；、\n':
#     if ch in text1:
#         for i in range(text1.count(ch)):
#             text1.remove(ch)
text2=[]
#添加自定义词语（向词典中加入自定义词，以免自定义词被分割）
wordsByMyself=['有限公司','投资','企业']
for i in range(len(wordsByMyself)):
    jieba.add_word(wordsByMyself[i])
#对文件进行分词
text1=jieba.lcut(text)
print(text1)
#筛选字数大于2的词，进行词语统计，并添加到text2中
counts={}
for word in text1:
    if(len(word))==1:
        continue
    else:
        text2.append(word)
        counts[word]=counts.get(word,0)+1
#统计自定义词语频率
for i in range(len(wordsByMyself)):
    if wordsByMyself[i] in counts:
        print(wordsByMyself[i]+':'+str(counts[wordsByMyself[i]]))
    else:
        print(wordsByMyself[i]+':0')
print(text2)
#——————————————————————————————————————#
#关键词频分析（1.图云）
#——————————————————————————————————————#
#导入统计词频工具包
from collections import Counter
#统计text中出现频次最多的前20个词
result=Counter(text2).most_common(10)
print(result)
#链接词语
text2=' '.join(text2)
import numpy as np
from PIL import Image
mask9=np.array(Image.open('/Users/cythnia/Desktop/lunwen/图片.jpg')) #打开背景图片，为白色
#导入图云工具包
from wordcloud import WordCloud    
wc=WordCloud(font_path='/Users/cythnia/Desktop/SimHei.ttf',mask=mask9,background_color='white',mode='RGBA',colormap='Blues').generate(text2)
wc.to_image()
    
        
   

